Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial prototype #2

Merged
merged 24 commits into from
Aug 7, 2017
Merged

Initial prototype #2

merged 24 commits into from
Aug 7, 2017

Conversation

erwinvaneyk
Copy link
Member

This PR contains the first prototype (as demonstrated/discussed last Friday), with the following notable features:

  • Core components implemented:
    • API (Server): both internal and external (gRPC and JSON) API.
    • Event Store (using NATS streaming) : Stores events, only actual stateful component.
    • Projector : constructing state from events.
    • Controller : manages workflow invocations
    • Scheduler : makes decisions based on the current state of a workflow invocation.
    • Fission Proxy : a separate server that ensures that the workflow engine conforms to the environment/function interface of Fission.
    • Parser: parses workflows into workflows that can be executed (e.g. resolves function names to uids)
  • Initial data format for workflows, which supports declaration of tasks with dependency
  • A hacked together, deployable binary under ./cmd/workflow-engine/
  • Build and deploy (to kubernetes) scripts in ./build/
  • Working example of a simple (sequential) workflow. To run:
    1. build & deploy fission which supports fission-workflow (currently there is a quick and dirty integration available: https://github.com/erwinvaneyk/fission/tree/fission-workflow-integration)
    2. Deploy fission-nats.yaml (currently the only 'additional' dependency of Fission-workflow
    3. build & deploy fission-workflow
    4. run ./examples/simple/deploy.sh which deploys functions and workflows
    5. invoke one of the workflows just like you would invoke a Fission function. For example, to request advice from the Fortunewhale: curl $FISSION_ROUTER/fission-function/fortunewhale
  • Some (outdated) documentation is available under ./Docs/

Fyi @soamvasani

@erwinvaneyk erwinvaneyk merged commit 09c6b59 into master Aug 7, 2017
@erwinvaneyk erwinvaneyk deleted the prototype branch August 7, 2017 00:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant